package com.pacific.demo;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import com.pacific.demo.databinding.ActivityMainBinding;
import com.pacific.timer.Rx2Timer;
import java.util.concurrent.TimeUnit;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
ActivityMainBinding binding;
Rx2Timer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.start.setOnClickListener(this);
binding.stop.setOnClickListener(this);
binding.restart.setOnClickListener(this);
binding.pause.setOnClickListener(this);
binding.resume.setOnClickListener(this);
timer = Rx2Timer.builder()
.initialDelay(0) //default is 0
.period(1) //default is 1
.take(30) //default is 60
.unit(TimeUnit.SECONDS) // default is TimeUnit.SECONDS
.onCount(count -> {
if (count < 10) {
binding.text.setText("0" + count + " s");
} else {
binding.text.setText(count + " s");
}
})
.onError(e -> binding.text.setText(R.string.count))
.onComplete(() -> binding.text.setText(R.string.count))
.build();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start:
timer.start();
break;
case R.id.stop:
timer.stop();
binding.text.setText(R.string.count);
break;
case R.id.restart:
timer.restart();
break;
case R.id.pause:
timer.pause();
break;
case R.id.resume:
timer.resume();
break;
default:
break;
}
}
@Override
public void onResume() {
super.onResume();
timer.resume();
}
@Override
public void onPause() {
super.onPause();
timer.pause();
}
@Override
public void onDestroy() {
super.onDestroy();
timer.stop();
}
}